From 9ab2786991db56f49ec7eaff20118734c03470b2 Mon Sep 17 00:00:00 2001 From: Kristian Rietveld Date: Thu, 23 Dec 2010 18:41:23 +0100 Subject: [PATCH] GtkCellRendererText: use PANGO_PIXELS_CEIL for text_width Usually pango_layout_get_pixel_extents() is used, which uses PANGO_PIXELS_CEIL on the rectangle's width. This commit makes the new function gtk_cell_renderer_text_get_preferred_width() consistent with this. This fixes rounding errors on Mac OS X, where we were seeing tree views with a double height for a single line of text, while the usual single row height would have been sufficient. --- gtk/gtkcellrenderertext.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gtk/gtkcellrenderertext.c b/gtk/gtkcellrenderertext.c index 2cff3a47c3..5f2c2c2f96 100644 --- a/gtk/gtkcellrenderertext.c +++ b/gtk/gtkcellrenderertext.c @@ -2157,19 +2157,19 @@ gtk_cell_renderer_text_get_preferred_width (GtkCellRenderer *cell, if ((priv->ellipsize_set && priv->ellipsize != PANGO_ELLIPSIZE_NONE) || priv->width_chars > 0) min_width = xpad * 2 + - MIN (PANGO_PIXELS (text_width), + MIN (PANGO_PIXELS_CEIL (text_width), (PANGO_PIXELS (char_width) * MAX (priv->width_chars, ellipsize_chars))); /* If no width-chars set, minimum for wrapping text will be the wrap-width */ else if (priv->wrap_width > -1) - min_width = xpad * 2 + rect.x + MIN (PANGO_PIXELS (text_width), priv->wrap_width); + min_width = xpad * 2 + rect.x + MIN (PANGO_PIXELS_CEIL (text_width), priv->wrap_width); else - min_width = xpad * 2 + rect.x + PANGO_PIXELS (text_width); + min_width = xpad * 2 + rect.x + PANGO_PIXELS_CEIL (text_width); if (priv->width_chars > 0) nat_width = xpad * 2 + - MAX ((PANGO_PIXELS (char_width) * priv->width_chars), PANGO_PIXELS (text_width)); + MAX ((PANGO_PIXELS (char_width) * priv->width_chars), PANGO_PIXELS_CEIL (text_width)); else - nat_width = xpad * 2 + PANGO_PIXELS (text_width); + nat_width = xpad * 2 + PANGO_PIXELS_CEIL (text_width); nat_width = MAX (nat_width, min_width); -- 2.30.2